$(function(){
	
	//错误提示函数
	function errTips(obj,str){
		var exist=obj.next().hasClass("err");
		
		if(exist){
			obj.next().html(str);
		}else{
			var $err=$("<div class='err text-left'></div");
			
			$err.html(str);
			obj.after($err);
		}
		
		obj.next(".err").show();
	};
	
	/*注册、登录界面的切换*/
	//由注册界面切换到登录界面
	$(".login-btn").click(function(){
		$(".register-bd").hide();
		$(".register-btn").removeClass("on");
		$(this).addClass("on");
		$(".login-bd").show();
	});
	
	//由登录界面切换到注册界面
	$(".register-btn").click(function(){
		$(".login-bd").hide();
		$(".login-btn").removeClass("on");
		$(this).addClass("on");
		$(".register-bd").show();
	});
	
	//正则表达式
	var re={
		phone:/^1[3|4|5|6|7|8|9][0-9]{1}[0-9]{8}$/,
		email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
		passwords:/^[A-Za-z0-9]{6,16}$/
	}
	
	//输入验证
	$(".register-bd").on("input",function(e){
		var e=e || window.event, target=e.target || e.srcElement;
		
		switch(target.id){
			case "name":
				var name=$("#name").val().trim();
				if(name=="" || name==null){
					errTips($("#name"),"请输入您的姓名!");
					return false;
				}else if(name.length>10){
					errTips($("#name"),"姓名需在10字以内!");
					return false;
				}else if(filterSqlStr(name)){
					errTips($("#name"),"姓名不能包含敏感字符!");
					return false;
				}else{
					$("#name").next(".err").hide();
				}
				break;
			
			case "phone":
			    var phone=$("#phone").val().trim();
				if(phone=="" || phone==null){
					errTips($("#phone"),"请填写手机号!");
					return false;
				}else if(!re.phone.test(phone)){
					errTips($("#phone"),"请填写11位有效手机号！");
					return false;
				}else{
					$("#phone").next(".err").hide();
				}
				break;
				
			case "passwords":
				var passwords=$("#passwords").val().trim();
				if(passwords=="" || passwords==null){
					errTips($("#passwords"),"请输入6-16位数字或字母！");
					return false;
				}else if(!re.passwords.test(passwords)){
					errTips($("#passwords"),"密码必须是6-16位字母、数字或字母数字组合！");
					return false;
				}else if(filterSqlStr(passwords)){
					errTips($("#passwords"),"密码不能包含敏感字符！");
					return false;
				}else{
					$("#passwords").next(".err").hide();
				}
				break;
				
			case "re-passwords":
				var passwords=$("#passwords").val().trim(),
					rePasswords=$("#re-passwords").val().trim();
					
				if(rePasswords=="" || rePasswords==null){
					errTips($("#re-passwords"),"请再次输入密码！");
					return false;
				}else if(rePasswords!==passwords){
					errTips($("#re-passwords"),"两次的密码不一致！");
					return false;	
				}else{
					$("#re-passwords").next(".err").hide();
				}
				break;
			
			case "code":
				var code=$("#code").val().trim();
				if(code=="" || code==null){
					errTips($("#VerifyReg"),"请输入图形验证码！");
					return false;
				}else{
					$("#VerifyReg").next(".err").hide();
				}
				break;
				
			default:
				break;
		};
		
	});
	
	//用户注册
	$("#register").click(function(){ register(); });
	
	//注册函数
	function register(){
		var name=$("#name").val().trim(),
			phone=$("#phone").val().trim(),
			passwords=$("#passwords").val().trim(),
			rePasswords=$("#re-passwords").val().trim(),
			code=$("#code").val().trim(),
			inviteWord=$("#regInviteWord").val().trim(),
			tel_code=$("#tel_code").val().trim();
		
		//验证表单
		if(name=="" || name==null){
			errTips($("#name"),"请输入您的姓名!");
			return false;
		}else{
			if(name.length>10){
				errTips($("#name"),"姓名需在10字以内!");
				return false;
			}
			if(filterSqlStr(name)){
				errTips($("#name"),"姓名不能包含敏感字符!");
				return false;
			}
		};
		
		if(phone=="" || phone==null){
			errTips($("#phone"),"请填写手机号!");
			return false;
		}else if(!re.phone.test(phone)){
			errTips($("#phone"),"请填写11位有效手机号！");
			return false;
		}
		
		if(passwords=="" || passwords==null){
			errTips($("#passwords"),"请输入6-16位数字或字母！");
			return false;
		}else{
			if(!re.passwords.test(passwords)){
				errTips($("#passwords"),"密码必须是6-16位字母、数字或字母数字组合！");
				return false;
			}	
			if(filterSqlStr(passwords)){
				errTips($("#passwords"),"密码不能包含敏感字符！");
				return false;
			}
		};
		
		if(rePasswords=="" || rePasswords==null){
			errTips($("#re-passwords"),"请再次输入密码！");
			return false;
		}else if(rePasswords!==passwords){
			errTips($("#re-passwords"),"两次的密码不一致！");
			return false;	
		};
		
		if(code=="" || code==null){
			errTips($("#VerifyReg"),"请输入图形验证码！");
			return false;
		}
		if(tel_code=="" || tel_code==null){
			errTips($("#VerifyReg"),"请输入手机验证码！");
			return false;
		}
//		else{
//			if(code.toLowerCase()!=securityCode.toLowerCase()){
//				showTips("验证码不正确");
//				return false;
//			}	
//		};
		
//		if(!$(".deal-check").is(":checked")){
//			showTips("请勾选 “ 本人已阅读并同意《微投网VChello服务协议》条款及细则 ”");
//			return false;
//		}
		
		//提交
		//发送手机号和密码
		$.ajax({
			type:"post",
			url:"/user/register",
			data:{
				"userName":name,
				"phone" : phone,
				"type":2,
				"password" : rePasswords,
				"securityCode":tel_code,
				"code":inviteWord
			},
			dataType: "json",
			success:function(data){
				//alert(data);
				window.location.href="/projects/project_list";
			}
		});
    };
	
	/*用户登录*/
	//初始化登录界面
	loginInit();
	
	function loginInit(){
		if(getCookieValue("userName") && getCookieValue("userPassword")){
			$("#login-phone").val(getCookieValue("userName"));
			$("#login-passwords").val(getCookieValue("userPassword"));
		}
	}
	
	//用户输入时验证
	$("#loginForm").on("input",function(e){
		var e=e || window.event, target=e.target || e.srcElement;
		var id=target.id;
		
		if(id=="login-phone"){
			var phone=$("#login-phone").val().trim();
			if(phone=="" || phone==null){
				errTips($("#login-phone"),"请输入手机号！");
				return false;
			}else if(!re.phone.test(phone)){
				errTips($("#login-phone"),"请输入11位有效的手机号码！");
				return false;
			}else{
				$("#login-phone").next(".err").hide();
			}
		}
		
		if(id=="login-passwords"){
			var passwords=$("#login-passwords").val().trim();
			if(passwords=="" || passwords==null){
				errTips($("#login-passwords"),"请输入正确的密码！");
				return false;
			}else{
				$("#login-passwords").next(".err").hide();
			}
		}
		
	});
	
	/*登录提交*/
	//点击按钮提交登录数据
	$("#login").click(function(){ login(); });
	
	//按下enter键提交注册和登录数据
	$(document).on("keydown",function(e){
		var hidden=$(".login-bd").css("display")=="none"? true : false;
	    if(e.keyCode==13){
	        if(hidden){
	        	register();
	        }else{
	        	login();
	        }
	    }
	}); 
	
	//登录函数
	function login(){
		var phone=$("#login-phone").val().trim(),
			password=$("#login-passwords").val().trim(),
			inviteWord=$("#loginInviteWord").val().trim();
			
		if(phone=="" || phone==null){
			errTips($("#login-phone"),"请输入手机号!");
			return false;
		}else{
			if(!re.phone.test(phone)){
				errTips($("#login-phone"),"请输入11位有效的手机号码!");
				return false;
			}
		};
		
		if(password=="" || password==null){
			errTips($("#login-passwords"),"请输入正确的密码!");
			return false;
		}
		
		//发送手机号和密码
		$.ajax({
			type:"post",
			url:"/login",
			data:{
				"phone" : phone,
				"password" : password,
				"code":inviteWord
			},
			dataType: "json",
			success:function(data){
				/*
				//如果账户不存在，则返回0
				if(data.data=='0'){
					errTips($("#login-phone"),"该手机号码未注册!");
				}*/
				
				//如果账户存在，密码不正确，则返回1
				if(data.data=='1'){
					errTips($("#login-passwords"),"该手机号不存在或密码错误!");
				}
				
				//如果用户名存在，且密码正确，则返回2
				if(data.data=='2'){
					//如果用户勾选了记住密码
					if($("#remember").is(":checked")){
						addCookie("userName",phone,7*24*60*60);
						addCookie("userPassword",password,7*24*60*60);
					}
					
					window.location.href="/projects/list";	
	
				}
			}
		});	

	}
	
	$("#getCaptcha").click(function(){
		
		countdown=getCookieValue("secondsremained");
		if (countdown > 0) {
			showTips("发送验证短信间隔少于1分钟");
    		return false;
		}
		var phone = $("#phone").val().trim();
	 	var captcha = $("#code").val().trim();
	 	
	 	var regMobile = /^1[3|4|5|6|7|8|9][0-9]{1}[0-9]{8}$/;
	 	if(phone == '' || phone == null || phone == '手机') {
	 		errTips($("#getCaptcha"),"请先输入手机号码！");
	 		return false;
	 	}
	 	
	 	if(!regMobile.test(phone)) {
	 		errTips($("#getCaptcha"),"手机格式错误！");
	 		return false;
	 	}
	 	
	 	if(captcha == '' || captcha == null){
	 		errTips($("#getCaptcha"),"请先输入图形验证码！");
    		return false;
	 	}
	 	

		$.ajax({
        type: "post",
        url: "/user/sendCaptcha",
        data : {"phone":phone,"code":captcha},
        dataType: "json",
        success: function(data) {
        	if(data.status == true){
        		showTips("验证码已发送到手机！");
        		curCount = count;
	 			//设置button效果，开始计时
	 			$("#getCaptcha").attr("disabled", "disabled");
        		$("#tel_code").val(data.captchaCode);
        		addCookie("secondsremained",60,60);//添加cookie记录,有效时间60s
        		SetRemainTime();//开始倒计时
			} else  {
				showTips(data.data);
			}
        }
    });
	})
	
	$("#VerifyReg").click(function(){
		$(this).attr("src","/securityCodeImage/init?timestamp="+new Date().getTime());
	});
	$("#VerifyReg1").click(function(){
		$("#VerifyReg").attr("src","/securityCodeImage/init?timestamp="+new Date().getTime());
	});
	
	//过滤敏感字符函数  ，如果包含敏感字符则flag为true。
	function filterSqlStr(value){  
	    var str="delete,javascript,exec,insert,select,union,update,count,*,',join,>,<";  
	    var strArr=str.split(','); 
	    var len=strArr.length;
	    var flag=false;  
	      
	    for(var i=0;i<len;i++){   
	        if(value.toLowerCase().indexOf(strArr[i])!=-1){  
	            flag=true;  
	            break;       
	        }  
	    }  
	    return flag;  
	};
	
});

//发送验证码时添加cookie
function addCookie(name,value,expiresHours){ 
    var cookieString=name+"="+escape(value); 
    //判断是否设置过期时间,0代表关闭浏览器时失效
    if(expiresHours>0){ 
        var date=new Date(); 
        date.setTime(date.getTime()+expiresHours*1000); 
        cookieString=cookieString+";expires=" + date.toUTCString(); 
    } 
        document.cookie=cookieString; 
} 

var InterValObj; //timer变量，控制时间
var count = 60; //间隔函数，1秒执行
var curCount;//当前剩余秒数
var countdown;

function SetRemainTime(phone) {
	countdown=getCookieValue("secondsremained");
	if (countdown == 0) {
		$("#getCaptcha").removeAttr("disabled");//启用按钮
		$("#getCaptcha").html("重新发送验证码");
		$("#getCaptcha").css("background-color", "#ec584e");
	}else {
		countdown--;
		$("#getCaptcha").html(countdown+"秒后再发送");
		$("#getCaptcha").attr("disabled", "disabled");
		$("#getCaptcha").css("background-color", "#666");
		editCookie("secondsremained",countdown,countdown+1);
		setTimeout(function() { SetRemainTime() },1000) //每1000毫秒执行一次
	}
}

//修改cookie的值
function editCookie(name,value,expiresHours){ 
    var cookieString=name+"="+escape(value); 
    if(expiresHours>0){ 
      var date=new Date(); 
      date.setTime(date.getTime()+expiresHours*1000); //单位是毫秒
      cookieString=cookieString+";expires=" + date.toGMTString(); 
    } 
      document.cookie=cookieString; 
} 
//根据名字获取cookie的值
function getCookieValue(name){ 
      var strCookie=document.cookie; 
      var arrCookie=strCookie.split(";"); 
      for(var i=0;i<arrCookie.length;i++){ 
        var arr=arrCookie[i].split("="); 
        if(Trim(arr[0])==name){
          return unescape(arr[1]);
          break;
        }
      } 
      return ""; 
       
}

function Trim(str){ 
    return str.replace(/(^\s*)|(\s*$)/g, ""); 
}
